const db = wx.cloud.database()
const works = db.collection('works')
import { calDays } from '../../utils/myMoment'
Page({
  /**
   * 处理完成按钮
   */
  finish(event) {
    const { id, index, status } = event.currentTarget.dataset
    works.doc(id)
      .update({ data: { status: !status } })
      .catch(e => {
        wx.showToast({ title: '糟糕！更新失败，请刷新重试:' + e, icon: 'none' })
      })
    const { workList } = this.data
    workList[index].status = !status
    this.setData({ workList })
  },

  /**
   * 获取作业清单 
   * 以后需要存储在本地，下拉刷新
   */
  async getWorks() {
    this.setData({ loading: true })
    // 用户可能未登录，直接获取 _openid
    const _openid = await wx.cloud
      .callFunction({ name: 'getOpenId' })
      .then(res => { return res.result.openId })
    const workList = await works
      .where({ _openid })
      .orderBy('status', 'asc')
      .orderBy('end', 'asc').get()
      .then(res => { return res.data })
    workList.map(item => {
      var rItem = item
      // 结束时间改为 x 天前/后
      rItem.end = calDays(item.end)
      // 省略过长的正文
      if (rItem.context && rItem.context.length > 8) {
        rItem.context = item.context.substr(0, 8) + "..."
      }
      return rItem
    })
    this.setData({ workList, loading: false })
  },

  /**
   * 显示/关闭 添加表单
   */
  addShow() {
    this.setData({ addShow: !this.data.addShow })
  },

  /**
   * 提交添加 Work
   */
  async addSubmit(event) {
    const { form } = event.detail
    // 得有 标题 或 正文
    if (form.title || form.context) {
      form.create_time = new Date().valueOf()
      await works.add({ data: form }).then(() => {
        wx.showToast({ title: '添加成功', })
        this.getWorks()
      })
    }
    // 清空表单
    const addForm = { end: new Date().valueOf(), eth: '' }
    this.setData({ addForm })
    this.addShow()
  },

  /**
   * 页面的初始数据
   */
  data: {
    loading: true,
    addShow: false,
    workList: '',
    addForm: {
      eth: '',
      end: new Date().valueOf()
    }
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
  },


  onShow: function () {
    this.getWorks()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})